﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Librerias;
using System.Data;
using System.Collections;

namespace eCampusWeb
{
    public partial class Asignatura : System.Web.UI.MasterPage
    {
        public ENAsignatura asig = new ENAsignatura();
        public ENUsuario usu = new ENUsuario();
        // no nos importa el usuario emisor, importa el receptor que es la asignatura
        public ENMensaje mens = new ENMensaje("");
        public ENNoticias nots = new ENNoticias();

        public ENDepartamento dept = new ENDepartamento();
       // public ENUsuario usu = new ENUsuario();
        public DataTable dtNots, dtUsus;
        public ArrayList paneles = new ArrayList();
        String asigCodigo = "", usuCorreo="";
        DataRow r = null;
        
        Boolean privada = false;
        int eltipo;

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (Request.QueryString["codigo"] != null)
                {
                    asigCodigo = Request.QueryString["codigo"].ToString();
                }
                else
                {// ESTO NO DEBERÍA OCURRIR NUNCA, lo ponemos por las pruebas

                    asigCodigo = "DPAA";
                }
                Info.NavigateUrl = "./AsignaturaFicha.aspx?codigo=" + asigCodigo;

                r = asig.ConsultaAsignaturas(asigCodigo, 0).Rows[0];

                lbNombreAsignatura.Text = r["asiNombre"].ToString();
                lbDepto.Text = "";
                if (dept.getCodigoDeptoPorAsignatura(asigCodigo) != null)
                {
                    lbDepto.Visible = true;
                    lbDepto.Text = dept.getCodigoDeptoPorAsignatura(asigCodigo);
                }
               
                lbOculta.Visible = false;
                // Comprobar login
                if ((usuCorreo=Session["correo"].ToString()).Equals(""))
                {
                    privada = false;
                    btEventos.Visible = false;
                    btMateriales.Visible = false;
                }
                else
                {
                    eltipo = Int32.Parse(Session["tipo"].ToString());
                    privada = true;
                    // 1 prof, 2 alumno
                    dtUsus = usu.ConsultarUsuariosPorTipoUsuYAsignatura(asigCodigo,eltipo);
                    if (!hayRelacionUsuarioAsig())
                    {
                        privada = false;
                    }           
                }
                llenarNoticias();
            }
            catch (Exception)
            {
                
            }
        }

        public Boolean hayRelacionUsuarioAsig()
        {
            Boolean hay = false;
            foreach (DataRow ro in dtUsus.Rows)
            {
                if (ro["usuCorreo"].ToString().Equals(usuCorreo))
                {
                    hay=true;
                    break;
                }
            }

            return hay;
        }

        public void llenarNoticias()
        {
            DataView  dv;
            String profeNom = "";
            try
            {
                dtNots = nots.dimeNoticiasSegunUnaAsignaturaOrderByDataDESC(asigCodigo);

                if (!privada)
                {
                    // solo podemos mostrar noticias públicas
                    dv = new DataView(dtNots);
                    dv.RowFilter = "notVisibilidad = 1";

                }
                else
                {
                    dv = new DataView(dtNots);
                }

                lbFecha2.Text = "";
                lbFecha1.Text = "";

                hyAsuntoNoticia1.NavigateUrl = "#";
                hyAsuntoNoticia2.NavigateUrl = "#";

                hyAsuntoNoticia1.Text = "No hay noticias que mostrar";
                hyAsuntoNoticia2.Visible = false;

                DateTime t = new DateTime();
                String emisor="";
                DataRow dr=null;

                if (dv.Count>0)          
                {
                    // con DataView
                    hyAsuntoNoticia1.NavigateUrl = "NoticiaDetalle.aspx?notId=" + dv[0]["notId"].ToString() +"&pgAnterior="+ (Request.Url.PathAndQuery.ToString());
                    t = Convert.ToDateTime(dv[0]["notFechaCreacion"].ToString());
                    lbFecha1.Text = "publicado el " + t.Date.ToString("dd/MM/yyyy") + "  " + t.Hour.ToString() + ":" + t.Minute.ToString() + " por ";
                    hyAsuntoNoticia1.Text = dv[0]["notAsunto"].ToString();
                    emisor = dv[0]["notEmisor"].ToString();
                    dr = usu.ConsultaUsuario(emisor, 0).Rows[0];
                    profeNom = dr["usuNombre"].ToString() + " " + dr["usuApellido1"].ToString();
                    hyAutor1.Text = profeNom;
                    hyAutor1.NavigateUrl = "Muro.aspx?usuario=" + emisor;

                    if (dv.Count > 1)
                    {
                        hyAsuntoNoticia2.Visible = true;
                        hyAsuntoNoticia2.NavigateUrl = "NoticiaDetalle.aspx?notId=" + dv[1]["notId"].ToString() + "&pgAnterior=" + (Request.Url.PathAndQuery.ToString());
                        t = Convert.ToDateTime(dv[1]["notFechaCreacion"].ToString());
                        lbFecha2.Text ="publicado el "+ t.Date.ToString("dd/MM/yyyy") + "  " + t.Hour.ToString() + ":" + t.Minute.ToString() + " por ";
                        hyAsuntoNoticia2.Text = dv[1]["notAsunto"].ToString();
                        emisor = dv[1]["notEmisor"].ToString();
                        dr = usu.ConsultaUsuario(emisor,0).Rows[0];
                        profeNom = dr["usuNombre"].ToString() + " " + dr["usuApellido1"].ToString();
                        hyAutor2.Text = profeNom;
                        hyAutor2.NavigateUrl = "Muro.aspx?usuario=" + emisor;

                        todasLasNoticias.Visible = true;
                    }
                }
                
            }
            catch (Exception ex)
            {
                lbOculta.Text = ex.Message;
            }

        }
        public void modificaColor(String id)
        {
            Button bt =null ;
            switch (id)
            {
                case "btBibliografia":
                    bt = btBibliografia;
                    break;
                case "btMuro":
                    bt = btMuro;
                    break;
                case "btEventos":
                    bt = btEventos;
                    break;
                case "btMateriales":
                    bt = btMateriales;
                    break;
                case "btProfesores":
                    bt = btProfesores;
                    break;
            }
            bt.ForeColor =  System.Drawing.ColorTranslator.FromHtml("#333");
        }
        public void btMuro_Click(object sender, EventArgs e)
        {
            Response.Redirect("./AsignaturaMuro.aspx?codigo="+asigCodigo);
        }

        public void btEventos_Click(object sender, EventArgs e)
        {
            Response.Redirect("./AsignaturaEvento.aspx?codigo="+asigCodigo);
        }

        public void btMateriales_Click(object sender, EventArgs e)
        {
            Response.Redirect("./AsignaturaMateriales.aspx?codigo="+asigCodigo);
        }

        public void btProfesores_Click(object sender, EventArgs e)
        {
            Response.Redirect("./AsignaturaProfesores.aspx?codigo="+asigCodigo);
        }
        
        protected void todasLasNoticias_Click(object sender, EventArgs e)
        {
            Response.Redirect("./AsignaturaNoticias.aspx?codigo="+asigCodigo);
        }

        protected void btBibliografia_Click(object sender, EventArgs e)
        {
            Response.Redirect("./AsignaturaBibliografia.aspx?codigo="+asigCodigo);
        }
       
    }
}